Technote 1136

MicroBug: The ROM Debugger

ñ⁄éü

MicroBugDžǬǢǃ

MicroBugÇÃÉRÉ}ÉìÉh

MicroBugÇÃîÈì`

óvñÒ

DZÇÃÉeÉNÉmÅ[ÉgÇ≈ÇÕMicroBugÇÃã@î\DžǬǢǃê‡ñæÇµÇ‹Ç∑ÅBMicroBugÇÕROMÉfÉoÉbÉKÇ≈ÅAMac Plusà»ç~ÇÃëSǃÇÃMacintoshÇ…ëïîıÇ≥ÇÍǃǢNjÇ∑ÅB

ÉnÅ[ÉhÇ»ÉvÉçÉOÉâÉ~ÉìÉOçÏãΔÇÃàÍì˙Ç™èIÇËãAëÓÇ∑ÇÈìdé‘Ç≈ÅAñ îíÇ¢óéjï®åÍÇΔǵǃëfiã¸ÇµÇÃǨDžDZÇÃÉeÉNÉmÅ[ÉgÇì«ÇÒÇ≈LJÇÁÇ¢ÇΩÇ¢ÇΔévǢNjÇ∑ÅBÇ‹ÇΩMacsBugÇÉCÉìÉXÉgÅ[ÉãÇ∑ÇÈÇΔçƒåªÇµÇ»Ç¢ñ‚ëËÇÃÉfÉoÉbÉOÇÇ∑ÇÈÇΔÇ´Ç…ÅAì«ÇÒÇ≈í∏Ç´ÇΩÇ¢ÇΔévǢNjÇ∑ÅB

MicroBugDžǬǢǃ

MicroBugÇÕMac PlusÇ≈ç≈èâÇ…ì±ì¸Ç≥ÇÍÅAǪÇÍà»ç~ÇÃëSǃÇÃMacintoshÇÃROMÇÃïWèÄÇÃÉRÉìÉ|Å[ÉlÉìÉgÇΔǻǡǃǢNjÇ∑ÅBMicroBugÇÕÉVÉXÉeÉÄÇ™É}ÉXÉNïsâ¬äÑÇËçûÇ›(Non-Maskable Interrupt,NMI)ÇéÛÇØéÊÇËÅAëºÇÃÉfÉoÉbÉK(Ç∑Ç»ÇÌÇøMacsBug)Ç™ÉCÉìÉXÉgÅ[ÉãÇ≥ÇÍǃǢǻǢÇΔÇ´Ç…åƒÇŒÇÍÇ‹Ç∑ÅB

MicroBugÇÕMacintosh 128,Macintosh 512ÇΔMacintosh XLÇ…ÇÕëïîıÇ≥ÇÍǃǢNjÇπÇÒÅB

ä¬ã´

MicroBugÇÕÅAǪÇÃÉÜÅ[ÉUÉCÉìÉ^ÉtÉFÅ[ÉXÇëÄçÏÇ∑ÇÈÇÃÇ…ïWèÄÇÃÉVÉXÉeÉÄÉTÅ[ÉrÉXÇégǢNjÇ∑ÅBì¡Ç…ÅAMicroBugÇÕÉEÉCÉìÉhÉEÇï`Ç≠ÇΩÇflÇ…QuickDrawÇégÇ¢ÅAÉLÅ[É{Å[ÉhÉCÉxÉìÉgÇìæÇÈÇΩÇflÇ…ÉCÉxÉìÉgÉ}ÉlÅ[ÉWÉÉ(Event Manager)ÇégǢNjÇ∑ÅBì‡ïîìIǻDZÇΔÇ≈Ç∑Ç™ÅAMicroBugÇÕÉVÉXÉeÉÄÉGÉâÅ[ÉnÉìÉhÉâ(System Error Handler)ÇΔëΩÇ≠ÇÃÉRÅ[ÉhÇã§óLǵǃǢNjÇ∑ÅBMicroBugÇΔMacsBugÇÕëŒèΔìIÇ≈ÅAMacsBugÇ≈ÇÕï`âÊÇΔì¸óÕÇÃèàóùÇÃà◊Ç…ìΔé©ÇÃí·ÉåÉxÉãÉãÅ[É`ÉìÇégǢNjÇ∑ÅBåãò_ÇΔǵǃÇÕÉVÉXÉeÉÄÇ™"ëπèù"ǵǃǢÇÈèÍçáÇ…ÇÕMacsBugÇÃï˚Ç™MicroBugÇÊÇËLJã@î\Ç∑ÇÈèÍçáÇ™ëΩÇ¢ÇΔåæÇ§Ç±ÇΔÇ≈Ç∑ÅB

éÆ

MicorBugÇÃéÆÇÕà»â∫Ç©ÇÁç\ê¨Ç≥ÇÍǃǢNjÇ∑ÅF

ÇPÇUêiêî(êÊì™Ç…$ǙǬǢǃLJǬǩǻÇ≠ǃLJÇÊÇ¢Åj
ÇPÇUêiêîÇÃílÇΔÇ»ÇËÇ‹Ç∑ÅB
"."
ÉhÉbÉgÉAÉhÉåÉXÇΔÇ»ÇËÇ‹Ç∑ÅBDZÇÃÉAÉhÉåÉXÇÕèâä˙Ç…ÇÕÇOÇ…ÉZÉbÉgÇ≥ÇÍǃǢǃà¯Ç´ë±Ç≠DMÇΔSMÉRÉ}ÉìÉhÇ≈ê›íËÇ≥ÇÍÇ‹Ç∑ÅB
@<expr>
<expr>DždžÇÈÉÅÉÇÉäÇÃílÇΔÇ»ÇËÇ‹Ç∑ÅB
RAx
680x0ÇÃÉAÉhÉåÉXÉåÉWÉXÉ^AxÇÃì‡óeÇΔÇ»ÇËÇ‹Ç∑ÅB
RDx
680x0ÇÃÉfÅ[É^ÉåÉWÉXÉ^DxÇÃì‡óeÇΔÇ»ÇËÇ‹Ç∑ÅB
PC
680x0ÇÃÉvÉçÉOÉâÉÄÉJÉEÉìÉ^ÉåÉWÉXÉ^ÇÃì‡óeÇΔÇ»ÇËÇ‹Ç∑ÅB
-<expr>
<expr>Ç…-1Çä|ÇØÇΩLJÇÃÇΔÇ»ÇËÇ‹Ç∑ÅB
<expr>+<expr>
ÇQǬÇÃéÆÇÃòaÇΔÇ»ÇËÇ‹Ç∑ÅB
<expr>-<expr>
ÇQǬÇÃéÆÇ…ç∑ÇΔÇ»ÇËÇ‹Ç∑ÅB

ëSǃÇÃéÆÇÕǪÇÍǺÇÍå≈óLÇÃÉTÉCÉYÇéùÇøÅAǪÇÍÇ™éÆÇ™ï‘Ç∑óLå¯Ç»ÉoÉCÉgÇÃêîÇΔÇ»ÇËÇ‹Ç∑ÅBÇPÇUêiêîÇÃÉTÉCÉYÇÕÅAêîÇÃíÜDždžÇÈÇPÇUêiêîéöÇÃêîÇ…ÇÊǡǃåàÇ‹ÇËÇ‹Ç∑ÅBÇPÇUêiêîéöÇ™ÇPǬdžÇÈÇ¢ÇÕÇQǬÇÃèÍçáÅAǪÇÃÉTÉCÉYÇÕÇPÉoÉCÉgÇ≈džÇËÅAÇPÇUêiêîéöÇ™ÇRdžÇÈÇ¢ÇÕÇSǬÇÃèÍçáÅAǪÇÃÉTÉCÉYÇÕÇQÉoÉCÉgÇΔÇ»ÇËÅAÇTdžÇÈÇ¢ÇÕǪÇÍà»è„ÇÃèÍçáÅAÉTÉCÉYÇÕÇSÉoÉCÉgÇΔÇ»ÇËÇ‹Ç∑ÅB

"."ÅAä‘ê⁄éÆ(indirect)ÅAǪǵǃëSǃÇÃÉåÉWÉXÉ^éÆÇÃÉTÉCÉYÇÕÇSÉoÉCÉgÇ≈Ç∑ÅB

éZèpéÆÇÃÉTÉCÉYÇÕǪÇÃóvëfÇÃÉTÉCÉYÇÃç≈ëÂílÇΔÇ»ÇËÇ‹Ç∑ÅB

MicroBugÇÃÉRÉ}ÉìÉh

É_ÉìÉvÉÅÉÇÉä(Dump Memory)

DM addr

DM

à¯êîïtÇ´ÇÃèÍçáÅAÉ_ÉìÉvÉÅÉÇÉäÉRÉ}ÉìÉhÇÕaddrÇ≈éwíËÇ≥ÇÍÇΩÉAÉhÉåÉXÇ©ÇÁÇÃÉÅÉÇÉäÇÃì‡óeÇï\é¶ÇµÇ‹Ç∑ÅBà¯êîñ≥ǵÇÃèÍçáÅAÉ_ÉìÉvÉÅÉÇÉäÉRÉ}ÉìÉhÇÕÅAíºëOÇÃÉ_ÉìÉvÉÅÉÇÉäÉRÉ}ÉìÉhÇ™ï\é¶ÇµÇΩÉÅÉÇÉäÇÃÅAéüÇ©ÇÁÇÃÉÅÉÇÉäÇà¯Ç´ë±ÇØÇƒï\é¶ÇµÇ‹Ç∑ÅB

óºé“ÇΔLJÉhÉbÉgÉAÉhÉåÉXÇÅAï\é¶ÇäJénǵÇΩà íuÇ…ê›íËǵNjÇ∑ÅB

DZÇÃÉRÉ}ÉìÉhÇì¸óÕǵÇΩdžÇΔÇ…ÉäÉ^Å[ÉìÉLÅ[ÇÉ^ÉCÉvÇ∑ÇÈÇΔÅAà¯Ç´ë±Ç≠ÉÅÉÇÉäÇï\é¶ÇµÇ‹Ç∑ÅB

ÉZÉbÉgÉÅÉÇÉäÅ[(Set Memory)

SM addr expr

ÉZÉbÉgÉÅÉÇÉäÅ[ÉRÉ}ÉìÉhÇÕaddrÇ≈éwíËÇ≥ÇÍÇÈÉAÉhÉåÉXÇ©ÇÁénÇ‹ÇÈÉÅÉÇÉäÇÃì‡óeÇÅAexpréÆÇ≈éwíËÇ≥ÇÍÇÈílÇ…ê›íËǵNjÇ∑ÅBDZÇÃÉRÉ}ÉìÉhÇÕÅAéÆÇÃÉTÉCÉYÇ…è]ǡǃÉoÉCÉg(byte)ÅAÉèÅ[Éh(word)ÅAÉçÉìÉO(long)ÇÃílÇê›íËǵNjÇ∑ÅBê›íËÇ™äÆóπÇ∑ÇÈÇΔÅADZÇÃÉRÉ}ÉìÉhÇÕÅAílÇê›íËǵÇΩèÍèäÇ©ÇÁÇÃÉÅÉÇÉäÇÃì‡óeÇï\é¶ÇµÇ‹Ç∑ÅB

DZÇÃÉRÉ}ÉìÉhÇÕÉhÉbÉgÉAÉhÉåÉXÇÅAäJénǵÇΩà íuÇ…ê›íËǵNjÇ∑ÅB

DZÇÃÉRÉ}ÉìÉhÇì¸óÕǵÇΩdžÇΔÇ…ÉäÉ^Å[ÉìÉLÅ[ÇÉ^ÉCÉvÇ∑ÇÈÇΔÅAà¯Ç´ë±Ç≠ÉÅÉÇÉäÇï\é¶ÇµÇ‹Ç∑ÅB

ÉSÅ[(Go)

G addr

G

à¯êîïtÇ´ÇÃèÍçáÅAÉSÅ[ÉRÉ}ÉìÉhÇÕaddrÇ≈éwíËÇ≥ÇÍÇΩÉAÉhÉåÉXÇ©ÇÁé¿çsÇäJénǵNjÇ∑ÅBà¯êîñ≥ǵÇÃèÍçáÅAÉSÅ[ÉRÉ}ÉìÉhÇÕMacroBugÇ…ì¸Ç¡ÇΩéûì_Ç©ÇÁÇÃé¿çsÇçƒäJǵNjÇ∑ÅB

ëSï\é¶(Total Display)

TD

MicorBugÇ…ì¸ÇÈéûÇ…ÉåÉWÉXÉ^Çï€ë∂ǵÇΩÉÅÉÇÉäÇï\é¶Ç∑ÇÈDZÇΔÇ≈ÅAëSǃÇÃïWèÄ680x0ÉåÉWÉXÉ^Çï\é¶ÇµÇ‹Ç∑ÅBâ∫ÇÃÉeÅ[ÉuÉãÇÃǪÇÍǺÇÍÇÃÉåÉWÉXÉ^ÇÃÉÅÉÇÉäà íuÇé¶ÇµÇ‹Ç∑ÅB

ÉAÉhÉåÉX

ÉTÉCÉY

ê‡ñæ

ñºëO

$0C30

16 x 4 bytes

680x0ÉåÉWÉXÉ^d0-d7ÇΔa0-a7(DZÇÃèá)

SEVarBase

$0C6C

4 bytes

680x0 SPÉåÉWÉXÉ^

MacsBugSP

$0C70

4 bytes

680x0 PCÉåÉWÉXÉ^

MacsBugPC

$0C74

2 bytes

680x0 SRÉåÉWÉXÉ^

MacsBugSR

ÉRÉ}ÉìÉhÇì¸óÕǵÇΩå„ÅAÇ∑ÇÆÇ…ÉäÉ^Å[ÉìÉLÅ[ÇÉ^ÉCÉvÇ∑ÇÈÇΔÅAÉRÉ}ÉìÉhÇ™åJÇËï‘Ç≥ÇÍÇ‹Ç∑ÅB

ÉåÉWÉXÉ^ÇÃê›íËÇΔï\é¶

Ax expr
Ax

Dx expr
Dx

PC expr
PC

SR expr
SR

à¯êîïtÇ´ÇÃèÍçáÅADZÇÍÇÁÇÃÉRÉ}ÉìÉhÇÕÅAǪÇÍǺÇÍÇÃÉåÉWÉXÉ^Ç…exprÇê›íËǵNjÇ∑ÅBà¯êîñ≥ǵÇÃèÍçáÅADZÇÍÇÁÇÃÉRÉ}ÉìÉhÇÕÅAǪÇÍǺÇÍÇÃÉåÉWÉXÉ^ÇÃílÇï\é¶ÇµÇ‹Ç∑ÅBxÇÕÉAÉhÉåÉXÉåÉWÉXÉ^džÇÈÇ¢ÇÕÉfÅ[É^ÉåÉWÉXÉ^ÇÃî‘çÜÇé¶ÇµÅAÇOÇ©ÇÁÇVÇ‹Ç≈ÇÃêîéöÇ≈Ç∑ÅB

ÉRÉ}ÉìÉhÇì¸óÕǵÇΩå„ÅAÇ∑ÇÆÇ…ÉäÉ^Å[ÉìÉLÅ[ÇÉ^ÉCÉvÇ∑ÇÈÇΔÅAÉRÉ}ÉìÉhÇ™åJÇËï‘Ç≥ÇÍÇ‹Ç∑ÅB

MicroBugÇÃîÈì`

  • éüÇÃÇÊǧDžÉ^ÉCÉvǵǃÅAåªç›ÇÃÉvÉçÉZÉXÇã≠êßìIÇ…èIóπÇ≥ÇπÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅF
    SM 0 A9F4
    G 0
    DZÇÍÇÕ_ExitToShellÉgÉâÉbÉvÇÉAÉhÉåÉXÇOÇ…ê›íËǵÅAà¯Ç´ë±Ç´ÇªÇÃÉgÉâÉbÉvÇé¿çsÇ∑ÇÈDZÇΔÇ≈Ç∑ÅBÇ‡ÇøÇÎÇÒÅAåªç›Ç≈ÇÕMacOSÇ™ÉRÉ}ÉìÉh-ÉIÉvÉVÉáÉì-ÉGÉXÉPÅ[ÉvÇÃÉLÅ[ëÄçÏÇíÒãüǵǃǢÇÈÇÃÇ≈ÅADZÇÃédä|ÇØÇÕÅAÇŸÇΔÇÒÇ«à”ñ°ÇÕdžÇËÇ‹ÇπÇÒÅB
  • LJǵÉfÉoÉbÉKÇ…ì¸Ç¡ÇƒÉVÉXÉeÉÄÇ™ÉnÉìÉOǵÇΩÇÁÅAÉÇÉfÉÄÇÃÉXÉBÉbÉ`ÇêÿǡǃǛǃÇ≠ÇæÇ≥Ç¢ÅB
    íçÅF
    éÑÇ…ÇÕDZÇÃèïåæÇ™ç°Ç≈LJóLå¯Ç©Ç«Ç§Ç©ï™Ç©ÇËÇ‹ÇπÇÒÇ™ÅADZÇÃê_îÈìIÇ»ÉRÉÅÉìÉgÇÉeÉNÉmÅ[ÉgÇ©ÇÁçÌèúÇ∑ÇÈÇΔÇÕÇ≈Ç´Ç‹ÇπÇÒÇ≈ǵÇΩÅB
  • LJǵdžǻÇΩÇ™MicroBugÇégǡǃñ‚ëËÇÉfÉoÉbÉOǵǃǢÇÈÇÃÇ»ÇÁÅAà´Ç¢Ç±ÇΔÇÕåæÇ¢Ç‹ÇπÇÒÅALJǧàÍë‰MacsBugÇÉCÉìÉXÉgÅ[ÉãǵǃǢÇÈÉ}ÉVÉìÇÇΔÇ»ÇËÇ…íuǢǃÇ≠ÇæÇ≥Ç¢ÅBǪǧÇ∑ÇÈÇΔÉfÉoÉbÉOÇǵǂÇ∑Ç≠Ç∑ÇÈÇΩÇflMacsBugÇÃÉRÉ}ÉìÉhÇ™égǶNjÇ∑ÅBdhÅiÇPÇUêiåÍÇÃãtÉAÉZÉìÉuÉãÅj,mcdÇΔwhÅií·ÉÅÉÇÉäÉOÉçÅ[ÉoÉãÇå©Ç¬ÇØÇÈÅjÅAǪǵǃdm 0 <template>Åiç\ë¢ëÃÇÃÉtÉBÅ[ÉãÉhÇÃÉIÉtÉZÉbÉgÇíTÇ∑ÅjǻǫÇÕëÂïœÇ…ï÷óòÇ≈Ç∑ÅB

óvñÒ

MacsBugÇÕdžÇΩÇΩÇÃóFêlÇ≈Ç∑ÅBMicroBugÇÕÇΩǢǵÇΩóFêlÇ≈ÇÕǻǢÇΔévǢNjÇ∑Ç™ÅALJǵdžǻÇΩÇ™É}ÉbÉNÇÃÉvÉçÉOÉâÉ}Ç≈ÅAMacsBugÇÉCÉìÉXÉgÅ[ÉãÇ∑ÇÈÇΔè¡Ç¶ÇƒÇµÇ‹Ç§ÇÊǧǻÉoÉOÇéùǡǃǢÇÈÇΔǵÇΩÇÁÅAÇΔÇ…Ç©Ç≠èïÇØÇΔÇ»ÇÈóFêlÇ™ïKóvÇ≈Ç∑ÅB

éQçlï∂å£

  • MacsBug Reference and Debugging Guide, for MacsBug version 6.2 , Apple Computer, Inc.,Addison-Wesley, 1990

ïœçXóöó

  • êVãKçÏê¨ 1986îN6åéÅFTechnote 38 "ROM Debugger"
  • çXêV 1998îN3åéÅFTechnote PT 33 "The ROM Debugger"
  • çXêV 1998îN8åéÅFTechnote 1137 "MicroBug: The ROM Debugger" DZÇÃî≈Ç≈ÇÕÅAÉfÉoÉbÉKÉRÉ}ÉìÉhDžǬǢǃÇÊÇËäÆëSÇ…ê‡ñæÇµÇƒÇ¢Ç‹Ç∑ÅB

çXêVì˙: 1998 îN 8 åé 31 ì˙